#####第一题
m<-m[,-1]
result<-data.frame(ID=m[,1],p_value=NA)
m<-m[,-1]
m<-m[,-33]
m<-as.matrix(m)
ad<-log2(m)
col_names <- colnames(ad)  
ad[is.infinite(ad)]<-NA
# 创建一个空列表来存储分组  
col_groups <- list()  
for (name in col_names) {  
  # 提取列名的前三个字符  
  prefix <- substr(name, 1, 2)  
  
  # 检查是否已经有以当前前缀命名的分组  
  if (!any(grepl(prefix, names(col_groups)))) {  
    # 如果没有，就创建一个新分组  
    col_groups[[prefix]] <- character()  
  }  
  
  # 将当前列名添加到相应的分组中  
  col_groups[[prefix]] <- c(col_groups[[prefix]], name) 
} 
group<-col_groups
anum=0
bnum=0
cnum=0
 i=1
group1<-list()
col_names <- colnames(ad)  
 for (name in col_names) {  
    # 提取列名的前三个字符  
       prefix <- substr(name, 1, 2)  
       group1[i]<-prefix
       i=i+1
 } 

group1<-unlist(group1)
#为每个组计数
for(i in 1:100)
{
  prox<-unlist(ad[i,])
  for (j in group$as)
   { if(!is.na(prox[j]))
     anum=anum+1
  }
  for (j in group$ad)
  { if(!is.na(prox[j]))
    bnum=bnum+1
  }
  for (j in group$ct)
  { if(!is.na(prox[j]))
    cnum=cnum+1
  }
  if(anum>2&bnum>2&cnum>2)
  {
    test=oneway.test(prox~group1)#进行分析
    result$p_value[i]<-test$p.value
  }
  anum=0
  bnum=0
  cnum=0
}
#####第二题
data1 <- prostat[prostat$P < 0.05, "ID"]#需要绘制的数据
install.packages("BiocManager")
BiocManager::install("clusterProfiler")
library(clusterProfiler)
BiocManager::install("org.Hs.eg.db")
library(org.Hs.eg.db)
BiocManager::install("enrichplot")
library(enrichplot)
e <- enrichGO(gene         = data1,#绘图
                OrgDb        = org.Hs.eg.db,  
                keyType      = "SYMBOL",      
                ont          = "BP",          
                pAdjustMethod = "BH",
                qvalueCutoff = 0.05,
                readable     = TRUE)
graph1 <- enrichplot::dotplot(e)
print(graph1)
